package com.xuanyang.dormrepair.model.entity;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xuanyang.dormrepair.model.enums.FloorRoomStatus;
import com.xuanyang.dormrepair.utils.JwtKit;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * @author
 * 使用楼层进行登录
 * 账号：houseNo+roomNo 如：221127
 * 密码：password
 */
@Data
@Accessors(chain = true)
@TableName("floor_room")
public class FloorRoom {

    @TableId
    private Integer id;

    /**
     * 楼号 如：221
     */
    @TableField(strategy = FieldStrategy.NOT_EMPTY)
    private String houseNo;

    /**
     * 房间号 如：127
     */
    @TableField(strategy = FieldStrategy.NOT_EMPTY)
    private String roomNo;

    /**
     * 联系人姓名
     */
    @TableField(strategy = FieldStrategy.NOT_EMPTY)
    private String name;

    /**
     * 登录密码
     */
    @TableField(strategy = FieldStrategy.NOT_EMPTY)
    private String password;

    /**
     * 房间联系电话
     */
    @TableField(strategy = FieldStrategy.NOT_EMPTY)
    private String tel;

    /**
     * 放假联系qq
     */
    @TableField(strategy = FieldStrategy.NOT_EMPTY)
    private String qq;

    /**
     * 房间状态 暂时没啥用 有人没人吧 判断给不给登录
     */
    private FloorRoomStatus status;

    @TableField(exist = false)
    private String token;

    /**
     * 最后登录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date loginTime;

    public String getUsername() {
        return houseNo + "_" + roomNo;
    }

    /**
     * 获取当前登录者的token
     */
    public String token() {
        return JwtKit.sign(getUsername(), password);
    }
}